/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package agendadecontatostxt;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author ingrid.parruda
 */
public class Operacoes {
    
    
    
    public static ArrayList <Contato> contacts = new ArrayList <Contato>();
    SalvaTxt salvo = new SalvaTxt();
    
    public static void TXT (){
        String arquivoAgenda = "agendaContato.txt";
        FileInputStream arquivo_stm = null;
        ObjectInputStream arquivo_imp = null;
        try
        {
            arquivo_stm = new FileInputStream(arquivoAgenda);
            arquivo_imp = new ObjectInputStream(arquivo_stm);
            contacts = (ArrayList) arquivo_imp.readObject();
        }
        catch (IOException ex)
        {
        }
        catch (ClassNotFoundException ex)
        {
        }
    }
    
    public char inicializa(){
        String resp;
        
        resp = JOptionPane.showInputDialog(null,  "Bem vindo a sua agenda de contatos\n"
                                                + "Escolha a operação desejada: \n"
                                                + "(1)Adicionar Contato\n"
                                                + "(2)Procurar Contato\n"
                                                + "(3)Excluir contato\n"
                                                + "(4)Listar Contatos\n");
        if(resp == null){
            return '5';
        }else{
            return resp.charAt(0);                
        }
    }
    
    public void novoContato()
    {
        String nome, numero, operadora, email;
        int resp = -1;
        
        nome = JOptionPane.showInputDialog("Nome:");
        
        for (Contato c: contacts){
            if(c.nome.equals(nome)){
                
                resp = JOptionPane.showConfirmDialog(null, "O nome digitado ja existe, "
                                                         + "deseja adicionar mais um número?");
                if(resp == 0){
                    numero = JOptionPane.showInputDialog("Número:");
                    c.numero += " | "+numero;
                }
                break;
            }
        }
        
        if(resp == -1){            
            numero = JOptionPane.showInputDialog("Número:");
            operadora = JOptionPane.showInputDialog("Operadora:");
            email = JOptionPane.showInputDialog("E-mail:");

            contacts.add(new Contato (contacts.size() + 1, nome, numero, operadora, email));
            salvo.Salvar();
        }
    }
    
    public void ListarContatos ()
    {
        String lista = "";
        
        if (contacts.isEmpty()){
            JOptionPane.showMessageDialog(null, "\n Não há contatos na lista");
        }
        else{            
            for (Contato c: contacts)
            {
                lista = lista + "\n \n Nome: " + c.nome +   " - Número: " + c.numero
                    + " - Operadora:  " + c.operadora  + " - E-mail: " + c.email;

            }
            JOptionPane.showMessageDialog(null, lista);
        }       
    }
    
    public void excluiContato(){
        
        String nome = JOptionPane.showInputDialog("Digite o nome:");
        int i = -1;
        
                
        for(Contato c: contacts){
            if(c.nome.equals(nome)){
                i = 0;
                contacts.remove(c);
                salvo.Salvar();
                JOptionPane.showMessageDialog(null, "Contato excluido com sucesso");
                break;
            }            
        }       
        
        if(i == -1){
            JOptionPane.showMessageDialog(null, "Contato não encontrado");
        }
    }
    
    public void pesquisaContato(){        
        int i = -1;
        String nome = JOptionPane.showInputDialog("Digite o nome:");
        
        for(Contato c: contacts){
            if(c.nome.equals(nome)){
                i = 0;
                JOptionPane.showMessageDialog(null, "Nome: "+c.nome+
                                                    "\nNúmero: "+c.numero+
                                                    "\nOperadora: "+c.operadora+
                                                    "\nE-mail: "+c.email);                
                break;
            }
        }
        
        if(i == -1){
            JOptionPane.showMessageDialog(null, "Contato não encontrado");
        }        
    }
} 
